package com.me.modules.sys.service;


import com.me.modules.common.page.Page;
import com.me.modules.sys.entity.RoleEntity;
import com.me.modules.sys.entity.UserWindowDto;

import java.util.List;
import java.util.Map;

/**
 * 角色表
 *
 * @author jindouyun
 */
public interface RoleService {

	RoleEntity queryObject(Integer id);

	List<RoleEntity> queryList(Map<String, Object> map);

	int queryTotal(Map<String, Object> map);

	void save(RoleEntity role) throws Exception;

	void update(RoleEntity role);

	void delete(Integer id);

	void deleteBatch(String[] ids) throws Exception;

	/**
	 * 根据用户id查询用户所有的可用角色
	 * @param userId
	 * @param status
	 * @return
	 */
	List<RoleEntity> queryByUserId(Integer userId, Integer status);

	/**
	 * 根据角色id查询可用的组织机构
	 * @param roleId 角色id
	 * @return
	 */
	List<Integer> queryOrganRoleByRoleId(Integer roleId);

	/**
	 * 分页查询角色审批选择范围
	 * @return
	 */
	Page<UserWindowDto> queryPageByDto(UserWindowDto userWindowDto, int pageNmu);

	/**
	 * 批量更新用户状态
	 * @param status 状态(0正常 1禁用)
	 * @return
	 */
	int updateBatchStatus(String[] ids, String status);
}
